home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 June / Macworld (1999-06).dmg / Shareware World / Info / For Developers / MacZoop2.0.sea / MacZoop2.0 / Required Classes / ZGrafState.cp < prev    next >
Text File  |  1998-06-11  |  1KB  |  67 lines

  1. /*************************************************************************************************
  2. *
  3. *
  4. *            MacZoop - "the framework for the rest of us"         
  5. *
  6. *
  7. *
  8. *            ZGrafState.cp        -- a simple object for saving and restoring grafport state
  9. *
  10. *
  11. *            © 1997, Graham Cox
  12. *
  13. *
  14. *
  15. *************************************************************************************************/
  16.  
  17. #include    "ZGrafState.h"
  18. #include    <QDOffscreen.h>
  19.  
  20. ZGrafState::ZGrafState()
  21. {
  22.     clip = NewRgn();
  23.     
  24.     Record();
  25. }
  26.  
  27.  
  28.  
  29. ZGrafState::~ZGrafState()
  30. {
  31.     Restore();
  32.     
  33.     DisposeRgn( clip );
  34. }
  35.  
  36.  
  37. void    ZGrafState::Record()
  38. {
  39.     GetGWorld( &port, &dev );
  40.     GetClip( clip );
  41.     GetPenState( &pen );
  42.     GetBackColor( &back );
  43.     GetForeColor( &fore );
  44.     
  45.     font = port->txFont;
  46.     fSize = port->txSize;
  47.     fStyle = port->txFace;
  48.     fMode = port->txMode;    
  49. }
  50.  
  51.  
  52. void    ZGrafState::Restore()
  53. {
  54.     SetGWorld( port, dev );
  55.     SetClip( clip );
  56.     
  57.     SetPenState( &pen );
  58.     RGBForeColor( &fore );
  59.     RGBBackColor( &back );
  60.     
  61.     TextFont( font );
  62.     TextSize( fSize );
  63.     TextFace( fStyle );
  64.     TextMode( fMode );
  65. }
  66.  
  67.